###################################################################################
## ### ##   ## ### #    #    #   # ####    ########################################
##  #  # ### # ## ## #### ##### ## #### ###########################################
## # # # ### # # ### #### ##### ## #### ###########################################
## ### #     #   ###   ##   ### ## ####   #########################################
## ### # ### # ## ## #### ##### ## #### ###########################################
## ### # ### # ### # #### ##### ## #### ###########################################
## ### # ### # ### #    # ####   #    #    ########################################
###################################################################################

###################################################################################
## This makefile developed by Prof. Brian Y. Chen, Lehigh University, 2012       ##
###################################################################################



###################################################################################
###   # ####  ###   ##  ###########################################################
### ### ### ## # #### #############################################################
###  ## ###    # #  ## ############################################################
### ### ### ## # ## ### ###########################################################
### ###   # ## ##  ##  ############################################################
###################################################################################

###################
#compiler options
###################

###################################################################################
##  NOTE THAT COMPILATION IS PLATFORM DEPENDENT.  gcc/g++ on titan requires the  ##
##  executable "gcc34" and "g++34" instead of gcc and g++.  I have provided      ##
##  these lines here, for convenience.                                           ##
###################################################################################
#CC = gcc34
#CXX = g++34
CC = gcc
CXX = g++
CPPFLAGS = -g -pedantic -pedantic-errors -Wall -Wno-deprecated -Wparentheses 
CFLAGS = -g 

###################
#directory settings
###################
SOURCEDIR = source/
OBJECTDIR = object/
DEBUGDIR  = debug/
EXENAME   = invert
EXEPATH   = $(DEBUGDIR)$(EXENAME)
LIBS	  = -L./libs/ -lm 
DEFINES   = 
INCLUDES  = 




###################################################################################
###   #   # ###   ##  #############################################################
### #### ## ### ### ###############################################################
###  ### ## ###  ### ##############################################################
### #### ## ### ##### #############################################################
### ###   #   #   #  ##############################################################
###################################################################################

C_OBJS = \

BATCH_OBJS = \
$(OBJECTDIR)main.o \
$(OBJECTDIR)parseMatrix.o \

###################################################################################
####  ##  ## ### #   ##   # ####  ##   #   ##  ## ## ##############################
### ### ## #  #  # ## ## ## ### ## ## ### ## ## #  # ##############################
### ### ## # # # #   ### ## ###    ## ### ## ## # #  ##############################
### ### ## # ### # ##### ## ### ## ## ### ## ## # ## ##############################
####  ##  ## ### # ####   #   # ## ## ##   ##  ## ## ##############################
###################################################################################

all: $(BATCH_OBJS) $(C_OBJS)
	$(CXX) $(CPPFLAGS) -o $(EXEPATH) $(BATCH_OBJS) $(C_OBJS) $(LIBS) $(INCLUDES)

###################################################################################
# Dependencies                                                                    #
###################################################################################

$(BATCH_OBJS): $(OBJECTDIR)%.o: $(SOURCEDIR)%.cpp
	$(CXX) -c $(CPPFLAGS) $< -o $@ $(INCLUDES)

$(C_OBJS): $(OBJECTDIR)%.o: $(SOURCEDIR)%.c
	$(CC) -c $(CFLAGS) $< -o $@ $(INCLUDES)



###################################################################################
####  # ###   ##  ## ## ###########################################################
### ### ### ### ## #  # ###########################################################
### ### ###  ##    # #  ###########################################################
### ### ### ### ## # ## ###########################################################
####  #   #   # ## # ## ###########################################################
###################################################################################

clean:
	rm -rf $(BATCH_OBJS) $(C_OBJS) $(EXEPATH) object/*




